<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>processlist_top: common_schema documentation</title>
	<meta name="description" content="processlist_top: common_schema" />
	<meta name="keywords" content="processlist_top: common_schema" />
	<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>

<body>
	<div id="main">
		<div id="header">
			<h1>common_schema</h1> <strong>2.2</strong> documentation
			<div class="subtitle">DBA's framework for MySQL</div>
		</div>
		<div id="contentwrapper">
			<div id="content">
				<h2><a href="processlist_top.html">processlist_top</a></h2>	
<h3>NAME</h3>
processlist_top: Listing of active processes sorted by current query runtime, desc (longest first)
<h3>TYPE</h3>
View

<h3>DESCRIPTION</h3>
<p></p>

<p><i>processlist_top</i> displays only active processes (those not in Sleep mode, hence actually performing some query); it lists longest running queries first.
</p>

<p>
When looking at running processes, we are many times interested in those queries making trouble. We may look at PROCESSLIST when server seems
to react slowly. We may be looking for queries acquiring locks, blocking other queries, or for extremely long queries which are wasting system resources.
A good heuristic would be to look for queries running the longest.
</p>
<p>
However, PROCESSLIST also lists down many other connections, including those sleeping for long time. 
<i>processlist_top</i> provides with the short story: only active, and longest first. 
This is similar to query listing as implemented in <a href="http://jeremy.zawodny.com/mysql/mytop/">mytop</a> 
or <a href="http://code.google.com/p/innotop/">innotop</a>. 
</p>

<p><i>processlist_top</i> does not list its own process (the process invoking the SELECT on processlist_top)
</p>

<h3>STRUCTURE</h3>

<blockquote><pre>
mysql&gt; DESC common_schema.processlist_top;
+---------------------+---------------+------+-----+---------+-------+
| Field               | Type          | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+-------+
| ID                  | bigint(4)     | NO   |     | 0       |       |
| USER                | varchar(16)   | NO   |     |         |       |
| HOST                | varchar(64)   | NO   |     |         |       |
| DB                  | varchar(64)   | YES  |     | NULL    |       |
| COMMAND             | varchar(16)   | NO   |     |         |       |
| TIME                | int(7)        | NO   |     | 0       |       |
| STATE               | varchar(64)   | YES  |     | NULL    |       |
| INFO                | longtext      | YES  |     | NULL    |       |
| sql_kill_query      | varbinary(31) | NO   |     |         |       |
| sql_kill_connection | varbinary(25) | NO   |     |         |       |
+---------------------+---------------+------+-----+---------+-------+
</pre></blockquote>

<h3>SYNOPSIS</h3>

<p>Structure of this view is based to that of <a href="http://dev.mysql.com/doc/refman/5.1/en/processlist-table.html">INFORMATION_SCHEMA.PROCESSLIST</a> table</p>

<p>Additional columns are:
	<ul>
		<li>
			<strong>sql_kill_query</strong>: a <strong>KILL QUERY</strong> statement for current thread.
			<br/>Use with <a href="eval.html">eval()</a> to apply statement.	
		</li>
		<li>
			<strong>sql_kill_connection</strong>: a <strong>KILL</strong> statement for current thread.
			<br/>Use with <a href="eval.html">eval()</a> to apply statement.	
		</li>
	</ul>
</p>

<p>On Percona Server, this additional info is included:
	<ul>
		<li><strong>TIME_MS</strong>: execution time in milliseconds</li>
	</ul>
</p>
<h3>EXAMPLES</h3>
<p>Show all active processes:</p>
<blockquote><pre>mysql&gt; SELECT * FROM common_schema.processlist_top;
+----------+-------------+--------------+-----------+-------------+---------+------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------------+---------------------+---------------------+
| ID       | USER        | HOST         | DB        | COMMAND     | TIME    | STATE                                                            | INFO                                                                                                                  | TIME_MS    | sql_kill_query      | sql_kill_connection |
+----------+-------------+--------------+-----------+-------------+---------+------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------------+---------------------+---------------------+
|  3598334 | system user |              | NULL      | Connect     | 4281883 | Waiting for master to send event                                 | NULL                                                                                                                  | 4281883102 | KILL QUERY 3598334  | KILL 3598334        |
|  3598469 | replica     | sql01:51157  | NULL      | Binlog Dump | 4281878 | Has sent all binlog to slave; waiting for binlog to be updated   | NULL                                                                                                                  | 4281877707 | KILL QUERY 3598469  | KILL 3598469        |
| 31066726 | replica     | sql02:48924  | NULL      | Binlog Dump | 1041758 | Has sent all binlog to slave; waiting for binlog to be updated   | NULL                                                                                                                  | 1041758134 | KILL QUERY 31066726 | KILL 31066726       |
|  3598335 | system user |              | NULL      | Connect     |  195747 | Has read all relay log; waiting for the slave I/O thread to upda | NULL                                                                                                                  |          0 | KILL QUERY 3598335  | KILL 3598335        |
| 39946702 | store       | app03:46795  | datastore | Query       |       0 | Writing to net                                                   | SELECT * FROM store_location                                                                                          |         27 | KILL QUERY 39946702 | KILL 39946702       |
| 39946693 | store       | app05:51090  | datastore | Query       |       0 | Writing to net                                                   | SELECT store.store_id, store_location.zip_code FROM store JOIN store_location USING (store_id) WHERE store_class = 5  |         54 | KILL QUERY 39946693 | KILL 39946693       |
| 39946692 | store       | sql01:47849  | datastore | Query       |       0 | Writing to net                                                   | SELECT store.store_id, store_location.zip_code FROM store JOIN store_location USING (store_id) WHERE store_class = 34 |        350 | KILL QUERY 39946692 | KILL 39946692       |
+----------+-------------+--------------+-----------+-------------+---------+------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+------------+---------------------+---------------------+
</pre></blockquote>
<p>In the above example the last three processes seem to be running for 0 seconds. However, with Percona Server's <strong>TIME_MS</strong> we see the sub-second
runtime for each process. As it turns out, these three processes are not strictly order from oldest to newest. This is because we order them
based on <strong>TIME</strong>, which has a 1 second resolution.</p>

<h3>ENVIRONMENT</h3>
MySQL 5.1 or newer. Percona Server yields a different schema.

<h3>SEE ALSO</h3>
<a href="processlist_per_userhost.html">processlist_per_userhost</a>,
<a href="processlist_repl.html">processlist_repl</a>,
<a href="processlist_summary.html">processlist_summary</a>

<h3>AUTHOR</h3>
Shlomi Noach
				<br/>
			</div>
			<div id="sidebarwrapper">
				<div id="search">
					Search online documentation
					<form id="search_form" name="search_form" method="GET" 
						action="http://www.google.com/search" 
						onsubmit="document.forms['search_form']['q'].value = 'site:http://common-schema.googlecode.com/svn/trunk/common_schema/doc/html/ '+document.forms['search_form']['search_term'].value;">
						<input type="text" name="search_term" value=""/>
						<input type="hidden" name="q" value=""/>
						<input type="submit" value="go"/>						
					</form>
				</div>
				<div id="menu">
					<ul>
						<li><a title="Introduction" href="introduction.html">Introduction</a></li>
						<li><a title="Documentation" href="documentation.html">Documentation</a></li>
						<li><a title="Download" href="download.html">Download</a></li>
						<li><a title="Install" href="install.html">Install</a></li>
						<li><a title="Risks" href="risks.html">Risks</a></li>
					</ul>						
					<h3>QUERY SCRIPT</h3>
					<ul>
						<li><a title="QueryScript" href="query_script.html">QueryScript</a></li>
						<li><a title="Execution" href="query_script_execution.html">Execution</a></li>
						<li><a title="Flow control" href="query_script_flow_control.html">Flow control</a></li>
						<li><a title="Statements" href="query_script_statements.html">Statements</a></li>
						<li><a title="Expressions" href="query_script_expressions.html">Expressions</a></li>
						<li><a title="Variables" href="query_script_variables.html">Variables</a></li>
					</ul>						
					<h3>DEBUG</h3>
					<ul>
						<li><a title="rdebug" href="rdebug.html">rdebug</a></li>
						<li><a title="rdebug API" href="rdebug_api.html">rdebug API</a></li>
						<li><a title="rdebug workflow" href="rdebug_workflow.html">Workflow</a></li>
					</ul>						
					<h3>ROUTINES</h3>
					<ul>
						<li><a title="Execution &amp; flow control" href="execution_routines.html">Execution & flow control</a></li>
						<li><a title="General" href="general_routines.html">General</a></li>
						<li><a title="Process" href="process_routines.html">Process</a></li>
						<li><a title="Query analysis" href="query_analysis_routines.html">Query analysis</a></li>
						<li><a title="Schema analysis" href="schema_analysis_routines.html">Schema analysis</a></li>
						<li><a title="Security" href="security_routines.html">Security</a></li>
						<li><a title="Text" href="text_routines.html">Text</a></li>
						<li><a title="Time &amp; date" href="temporal_routines.html">Time & date</a></li>
						<li><a title="Charting" href="charting_routines.html">Charting</a></li>
					</ul>
					<h3>VIEWS</h3>
					<ul>
						<li><a title="Schema analysis" href="schema_analysis_views.html">Schema analysis</a></li>
						<li><a title="Data dimension" href="data_dimension_views.html">Data dimension</a></li>
						<li><a title="Process" href="process_views.html">Process</a></li>
						<li><a title="Security" href="security_views.html">Security</a></li>
						<li><a title="Monitoring" href="monitoring_views.html">Monitoring</a></li>
						<li><a title="InnoDB Plugin" href="innodb_plugin_views.html">InnoDB Plugin</a></li>
						<li><a title="Percona server" href="percona_server_views.html">Percona Server</a></li>
						<li><a title="TokuDB" href="tokudb_views.html">TokuDB</a></li>
					</ul>						
					<h3>DATA</h3>
					<ul>
						<li><a title="tables" href="tables.html">Tables</a></li>
						<li><a title="variables" href="variables.html">Variables</a></li>
					</ul>						
					<h3>META</h3>
					<ul>
						<li><a title="Help" href="help.html">help</a></li>
						<li><a title="Metadata" href="metadata.html">metadata</a></li>
						<li><a title="status" href="status.html">status</a></li>
					</ul>						
				</div>
			</div>	
			<div class="clear">&nbsp;</div>
			
			<div id="footnote" align="center">
				<a href="">common_schema</a> documentation
			</div>
		</div>
	</div>
</body>
</html>
